﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;

namespace PacoToolKit.Ini
{
    public static class IniHelper
    {
        #region "声明变量"

        /// <summary>
        /// 写入INI文件
        /// </summary>
        /// <param name="section">节点名称[如[TypeName]]</param>
        /// <param name="key">键</param>
        /// <param name="val">值</param>
        /// <param name="filepath">文件路径</param>
        /// <returns></returns>
        [DllImport("kernel32")]
        public static extern long WritePrivateProfileString(string section, string key, string val, string filepath);
        /// <summary>
        /// 读取INI文件
        /// </summary>
        /// <param name="section">节点名称</param>
        /// <param name="key">键</param>
        /// <param name="def">值</param>
        /// <param name="retval">stringbulider对象</param>
        /// <param name="size">字节大小</param>
        /// <param name="filePath">文件路径</param>
        /// <returns></returns>
        [DllImport("kernel32")]
        public static extern int GetPrivateProfileString(string section, string key, string def, StringBuilder retval, int size, string filePath);


        /// <summary>
        /// 自定义读取INI文件中的内容方法
        /// </summary>
        /// <param name="Section">键</param>
        /// <param name="key">值</param>
        /// <param name="filepath">文件路径</param>
        /// <returns></returns>
        public static string ReadIniContentValue(string Section, string key, string filepath)
        {

            StringBuilder temp = new StringBuilder(1024);
            IniHelper.GetPrivateProfileString(Section, key, "", temp, 1024, filepath);
            return temp.ToString();
        }
        /// <summary>
        /// 自定义写ini文件方法
        /// </summary>
        /// <param name="Section"></param>
        /// <param name="key"></param>
        /// <param name="value"></param>
        /// /// <param name="FilePath"></param>
        public static void WriteIniContentValue(string Section, string key, string value, string filepath)
        {
            WritePrivateProfileString(Section, key, value, filepath);
        }
        #endregion
    }
}
